package com.wish.wishauth;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * 修改
 */
public class AutoCodeDemo {

    public static void main(String[] args) {
        //1.创建生成器对象
        AutoGenerator mpg = new AutoGenerator();

        //1.1 全局配置对象
        GlobalConfig gc = new GlobalConfig();
        //设置作者
        gc.setAuthor("zhaiwj");
        //输出的路地址
        gc.setOutputDir("D:\\ideaProject\\PracticalTraining\\CloudProject\\后端\\wish-parent\\wish-auth\\src\\main\\java");
        //生成的文件后，是否打开
        gc.setOpen(false);
        //加入返回的reulstMap
        gc.setBaseResultMap(true);
        //加入返回的列的sql片段
        gc.setBaseColumnList(true);
        //1.1 设置全局
        mpg.setGlobalConfig(gc);


        //1.2 包的设置
        PackageConfig pc = new PackageConfig();
        //与当前类的名称一致
        pc.setParent(AutoCodeDemo.class.getPackage().getName());
        //pc.setController() 控制层的包 默认controller
        //pc.setMapper()  //mapper文件 默认是mapper
        // pc.setEntity()  默认是entity
        //pc.setService()   默认是service
        pc.setXml("mapper.mappers");
        //设置包配置
        mpg.setPackageInfo(pc);


        //1.3 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        //设置驱动类
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        //设置连接的url地址
        dsc.setUrl("jdbc:mysql://localhost:3306/wish-system_management?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
        //设置用户名
        dsc.setUsername("root");
        //设置密码
        dsc.setPassword("root");

        //设置数据源
        mpg.setDataSource(dsc);


        //1.4 生成策略
        StrategyConfig sc = new StrategyConfig();
        //包含表
        sc.setInclude("sys_user");
        //sc.setInclude("t_goods","t_brand");// 生成表
        //sc.setTablePrefix("t_");//表的前缀
        //sc.setExclude() 排除表

        // sc.setInclude("t_dictionary","t_user");
        //设置表的前缀
        // sc.setTablePrefix("cancer_");
        //实体类中关于group_name 会映射程groupName

        // 生成@RestController
        sc.setRestControllerStyle(true);

        sc.setNaming(NamingStrategy.underline_to_camel);
        //实体类中关于所有的字段都会加入@TableField注解
        sc.setEntityTableFieldAnnotationEnable(true);
        //设置实体bean采用lombok的操作
        sc.setEntityLombokModel(true);

        mpg.setStrategy(sc);


        //1.5 生成代码
        mpg.execute();
    }
}
